程式設計師都知道應該「避免使用全域變數」,事實上,對所有的變數而言「縮限範圍」都是很好的建議,不限於全域變數。
重要概念
儘可能減少可以看到變數的程式碼行數。
class LargeClass {
string str_;
void Method1() {
str_ = ...;
Method2();
}
void Method2() {
// 使用str_
}
// 其他許多不會用到 str_ 的方法
};
就某方面而言,類別成員變數就像是內部的「小型全域」空間;特別是對很大的類別而言,很難記得所有的成員函數以及它們被哪地方修改,愈少小型全域變數愈好。對這個範例來說,可以讓 str__ 「退化」成為區域變數:
class LargeClass {
void Method1() {
string str_= ...;
Method2(str);
}
void Method2(string str) {
// 使用str_
}
// 其他許多不會用到 str_ 的方法
};